/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import modelo.Despesas;
import modelo.Patrocinador;

/**
 *
 * @author Aluno
 */
public class DespesasDAO {
    Connection conn;
    
    public DespesasDAO() {
        try {
            conn = new Conexao().getConexao();
        } catch (SQLException ex) {
            Logger.getLogger(DespesasDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void inserir(Despesas desp){
       String sql = "INSERT INTO despesas" + "(descricao,valor,data,id_despesas)"+"VALUES(?,?,?,?)"; 
          try(PreparedStatement pstmt = this.conn.prepareStatement(sql)){
            pstmt.setString(1,desp.getDescricao());
            pstmt.setString(2,desp.getData());
            pstmt.setInt(3,desp.getId_despesas());
            pstmt.setDouble(4,desp.getValor());
            JOptionPane.showMessageDialog(null,"despesa inserida com sucesso"+ "essas grades não te prendem mano");
          } catch (SQLException ex) {   
            JOptionPane.showMessageDialog(null,"vai se fuder"+"SQLException em adicionar");
        }   
         
    }
    public void excluir(int id_despesas){
        String sql = "DELETE FROM despesas WHERE id_despesas"+ id_despesas;
       try(Statement stmt = this.conn.createStatement()){
            if(stmt.executeUpdate(sql)!=0){
                JOptionPane.showMessageDialog(null,"despesa excluida com sucesso"+ "vai se fuder pé de porco");
            }
       } catch (SQLException ex) { 
           System.out.println("SQLException em excluir"+"erro detectado"+ ex.getMessage());
        } 
    
        
    }
    public void alterar(){
       String sql = "UPDATE despesas SET"+
                   "descricao?,data?,id_despesas?,valor?"+
                   "WHERE id_patrocinador ";
       try(PreparedStatement pstmt = this.conn.prepareStatement(sql);){
           
       } catch (SQLException ex) {
           System.out.println("SQLException em adicionar"+"erro detectado"+ex.getMessage());
        }
        
    }
    public ArrayList<Despesas> consultar(String descricao){
        String sql = "SELECT FROM despesas WHERE descricao"+"LIKE"+"1 ORDER BY descricao";
        ArrayList <Despesas>despesas = new ArrayList<>();
        Despesas desp ;
        try
            (PreparedStatement pstmt = this.conn.prepareStatement(sql);
                ResultSet rs = pstmt.executeQuery();){
            while(rs.next()){
              desp = new Despesas();  
              desp.setDescricao(rs.getString("descricao"));
              desp.setData(rs.getString("data"));
              desp.setId_despesas(rs.getInt("id_despesas"));
              desp.setValor(rs.getDouble(sql));
              despesas.add(desp);
            }
            pstmt.close();
            rs.close();
            return despesas;
        } catch (SQLException ex) {
            System.out.println("SQLException em consultar "+"erro detectado"+"essas grades não te prendem mano"+ ex.getMessage());
        }
           
           
           return null;
       }
    
     public ArrayList<Despesas> listar(){
       String sql = "SELECT * FROM despesas";
       ArrayList<Despesas>despesas = new ArrayList<>();
       Despesas desp;
       try(PreparedStatement pstmt = this.conn.prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();){
           while(rs.next()){
           desp = new Despesas();
           desp.setDescricao(rs.getString(sql));
           desp.setData(rs.getString(sql));
           desp.setId_despesas(rs.getInt(sql));
           desp.setValor(rs.getDouble(sql));
           despesas.add(desp);
           }
       } catch (SQLException ex) {
            Logger.getLogger(DespesasDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
       
         return null;
     }

}
